﻿/*
 *作者：段凯强，章秀，左鹏飞
 *功能：用来解决与地图API相关的问题
 *日期：2011-08
 */
//初始化地图：容器ID，中心坐标，鼠标光标，拖拽时鼠标光标
function mInitMap(_containerId,_cursor,_draggingCursor){
	//设置窗口大小
	alloy.onDomReady(function(){
		alloy.window.setBodySize({
			width:800,
			height:460
		});
	});
	//得到地图
	map = new soso.maps.Map(document.getElementById(_containerId),{
		zoomLevel:13,
		cursor:_cursor,
		draggingCursor:_draggingCursor
	});
	//IP定位
	var geolocation = new soso.maps.Geolocation();
	geolocation.position({}, function(results, status){
		if (status == soso.maps.GeolocationStatus.OK){
			map.setCenter(results.latLng);
		}
		else{
			qAlert("无法定位您的IP，原因: " + status + "。");
			map.setCenter(new soso.maps.LatLng("39.916527,116.397128"));
		}
	});
	//比例尺控件
	var scaleControl = new soso.maps.ScaleControl({
		align: soso.maps.ALIGN.BOTTOM_LEFT,
		margin: new soso.maps.Size(85, 15),
		map: map
	});
	//自定义的微博编辑窗口
	bwcControl = mBroadcastWeiboControl("broadcastOnclick","cancelOnclick");
	//获取右键点击处的经纬度值
	weiboLatLng = null;
	soso.maps.Event.addListener(map,'rightclick',function(e) {
		if(weiboLatLng==null){
			weiboLatLng = e.latLng;
		}
	});
	//航程设置控件
	rsControl = mSetRoute();
	//设置站点监听事件
	_setStationListener=null;
	//航程站点计数
	stationCount = 0;
	//自定义的航程演示控件
	rdControl=mRouteDisplay(); 
	//航程微博的数组
	routeWeibos=new Array();
	//航程演示的标记
	displayMarker=null;
	//航程演示的简要信息窗口
	displayInfo=null;
	//航程演示的计时器
	displayTimer=null;
	//添加地图上的右键菜单
	mWeiboBroadcastContextMenu();
	//人物列表控件
	mPeopleControl();
	//“我发表”控件
	mWeiboHome();
	//微博标记数组
	weiboMarkers=new Array();
	//微博简要信息窗口
	weiboInfos=new Array();
	//微博数组
	weibos=new Array();
	//修改微博监听事件
	_modifyWeiboListener=null;
	//自定义的微博详情窗口
	wdControl=null;
}
//***********************************************************************************************************
//点击“发表”时执行此函数（微博编辑窗口）
function broadcastOnclick(){
	if(document.getElementById("weiBoContent").value=="写点什么吧..."){
		qConfirm("没有填写任何内容，需要重新填写吗？",function(){
		},function(){
			bwcControl.setMap(null);
			weiboLatLng=null;
		});
	}
	else{
		//过滤掉回车换行
		var c = hWeiboContentFilter(document.getElementById("weiBoContent").value);
		if(c == "写点什么吧... "){
			c = "写点什么吧...";
		}
		var mood=((document.getElementById("mood").src.split("img/",2))[1].split(".",2))[0];
		var add=document.getElementById("codeAddress").value;
		var lat=weiboLatLng.getLat().toFixed(6);
		var lng=weiboLatLng.getLng().toFixed(6);
		var code=hIdentifyingCode(lat,lng,0);
		var res=wAddNewWeibo(mood,c,add,code,lat,lng);
		if(res){
			qAlert("恭喜！发表成功！");
		}
		weiboLatLng=null;
		bwcControl.setMap(null);
		toMyHome();
	}
}
//点击“取消”时执行此函数（微博编辑窗口）
function cancelOnclick(){
	if(document.getElementById("weiBoContent").value=="写点什么吧..."){
		bwcControl.setMap(null);
		weiboLatLng=null;
	}
	else{
		qConfirm("已经填写内容，确定放弃吗？",function(){
			document.getElementById("weiBoContent").value="写点什么吧...";
			bwcControl.setMap(null);
			weiboLatLng=null;
		},function(){
		});
	}
}
//航程设置时点击“确定”执行此函数
function stationSettingOnclick(){
	if(document.getElementById("weiBoContent").value=="写点什么吧..."){
		qConfirm("没有填写任何内容，需要重新填写吗？",function(){
		},function(){
			bwcControl.setMap(null);
			weiboLatLng=null;
		});
	}
	else{
		//过滤掉回车换行
		var c = hWeiboContentFilter(document.getElementById("weiBoContent").value);
		if(c == "写点什么吧... "){
			c = "写点什么吧...";
		}
		stationCount++;
		var mood=((document.getElementById("mood").src.split("img/",2))[1].split(".",2))[0];
		var add=document.getElementById("codeAddress").value;
		var lat=weiboLatLng.getLat().toFixed(6);
		var lng=weiboLatLng.getLng().toFixed(6);
		var code=hIdentifyingCode(lat,lng,stationCount);
		var res=wAddNewWeibo(mood,"第"+stationCount+"站 "+c,add,code,lat,lng);
		weiboLatLng=null;
		bwcControl.setMap(null);
		if(res){
			qAlert("恭喜！已经设置了"+stationCount+"个站点！");
		}
		toMyHome();
	}
}
//自定义微博编辑窗口控件:确定时执行的函数，取消时执行的函数
function mBroadcastWeiboControl(confirm,cancel){
	var _control = new soso.maps.Control({
		content: "\
<div style='width:500px;height:200px;border:1px solid #999999;background-color:#b6eafd;opacity:0.9;filter:alpha(opacity=90);'>\
<div style='width:430px;height:160px;margin-left:35px;margin-top:20px;border:1px solid #999999;background-color:#bbffff;'>\
	<table id='moodLib' style='border:1px solid #cccccc;background-color:#eeeeff;position:absolute;margin-left:60px;margin-top:29px;display:none;z-index:1;'>\
	<tr>\
	<td><img title='微笑' style='border:1px solid #eeeeff;' src='img/weixiao.gif' onclick='document.getElementById(&quot;mood&quot;).src=&quot;img/weixiao.gif&quot;,document.getElementById(&quot;moodLib&quot;).style.display=&quot;none&quot;;' onmouseover='this.style.borderColor=&quot;#8899cc&quot;' onmouseout='this.style.borderColor=&quot;#eeeeff&quot;'></td>\
	<td><img title='嘻嘻' style='border:1px solid #eeeeff;' src='img/xixi.gif' onclick='document.getElementById(&quot;mood&quot;).src=&quot;img/xixi.gif&quot;,document.getElementById(&quot;moodLib&quot;).style.display=&quot;none&quot;;' onmouseover='this.style.borderColor=&quot;#8899cc&quot;' onmouseout='this.style.borderColor=&quot;#eeeeff&quot;'></td>\
	<td><img title='哈哈' style='border:1px solid #eeeeff;' src='img/haha.gif' onclick='document.getElementById(&quot;mood&quot;).src=&quot;img/haha.gif&quot;,document.getElementById(&quot;moodLib&quot;).style.display=&quot;none&quot;;' onmouseover='this.style.borderColor=&quot;#8899cc&quot;' onmouseout='this.style.borderColor=&quot;#eeeeff&quot;'></td>\
	<td><img title='拍手' style='border:1px solid #eeeeff;' src='img/paishou.gif' onclick='document.getElementById(&quot;mood&quot;).src=&quot;img/paishou.gif&quot;,document.getElementById(&quot;moodLib&quot;).style.display=&quot;none&quot;;' onmouseover='this.style.borderColor=&quot;#8899cc&quot;' onmouseout='this.style.borderColor=&quot;#eeeeff&quot;'></td>\
	</tr>\
	<tr>\
	<td><img title='可怜' style='border:1px solid #eeeeff;' src='img/kelian.gif' onclick='document.getElementById(&quot;mood&quot;).src=&quot;img/kelian.gif&quot;,document.getElementById(&quot;moodLib&quot;).style.display=&quot;none&quot;;' onmouseover='this.style.borderColor=&quot;#8899cc&quot;' onmouseout='this.style.borderColor=&quot;#eeeeff&quot;'></td>\
	<td><img title='委屈' style='border:1px solid #eeeeff;' src='img/weiqu.gif' onclick='document.getElementById(&quot;mood&quot;).src=&quot;img/weiqu.gif&quot;,document.getElementById(&quot;moodLib&quot;).style.display=&quot;none&quot;;' onmouseover='this.style.borderColor=&quot;#8899cc&quot;' onmouseout='this.style.borderColor=&quot;#eeeeff&quot;'></td>\
	<td><img title='哭泣' style='border:1px solid #eeeeff;' src='img/kuqi.gif' onclick='document.getElementById(&quot;mood&quot;).src=&quot;img/kuqi.gif&quot;,document.getElementById(&quot;moodLib&quot;).style.display=&quot;none&quot;;' onmouseover='this.style.borderColor=&quot;#8899cc&quot;' onmouseout='this.style.borderColor=&quot;#eeeeff&quot;'></td>\
	<td><img title='大哭' style='border:1px solid #eeeeff;' src='img/daku.gif' onclick='document.getElementById(&quot;mood&quot;).src=&quot;img/daku.gif&quot;,document.getElementById(&quot;moodLib&quot;).style.display=&quot;none&quot;;' onmouseover='this.style.borderColor=&quot;#8899cc&quot;' onmouseout='this.style.borderColor=&quot;#eeeeff&quot;'></td>\
	</tr>\
	<tr>\
	<td><img title='流汗' style='border:1px solid #eeeeff;' src='img/liuhan.gif' onclick='document.getElementById(&quot;mood&quot;).src=&quot;img/liuhan.gif&quot;,document.getElementById(&quot;moodLib&quot;).style.display=&quot;none&quot;;' onmouseover='this.style.borderColor=&quot;#8899cc&quot;' onmouseout='this.style.borderColor=&quot;#eeeeff&quot;'></td>\
	<td><img title='擦汗' style='border:1px solid #eeeeff;' src='img/cahan.gif' onclick='document.getElementById(&quot;mood&quot;).src=&quot;img/cahan.gif&quot;,document.getElementById(&quot;moodLib&quot;).style.display=&quot;none&quot;;' onmouseover='this.style.borderColor=&quot;#8899cc&quot;' onmouseout='this.style.borderColor=&quot;#eeeeff&quot;'></td>\
	<td><img title='鄙视' style='border:1px solid #eeeeff;' src='img/bishi.gif' onclick='document.getElementById(&quot;mood&quot;).src=&quot;img/bishi.gif&quot;,document.getElementById(&quot;moodLib&quot;).style.display=&quot;none&quot;;' onmouseover='this.style.borderColor=&quot;#8899cc&quot;' onmouseout='this.style.borderColor=&quot;#eeeeff&quot;'></td>\
	<td><img title='发怒' style='border:1px solid #eeeeff;' src='img/fanu.gif' onclick='document.getElementById(&quot;mood&quot;).src=&quot;img/fanu.gif&quot;,document.getElementById(&quot;moodLib&quot;).style.display=&quot;none&quot;;' onmouseover='this.style.borderColor=&quot;#8899cc&quot;' onmouseout='this.style.borderColor=&quot;#eeeeff&quot;'></td>\
	</tr>\
	<tr>\
	<td><img title='奋斗' style='border:1px solid #eeeeff;' src='img/fengdou.gif' onclick='document.getElementById(&quot;mood&quot;).src=&quot;img/fengdou.gif&quot;,document.getElementById(&quot;moodLib&quot;).style.display=&quot;none&quot;;' onmouseover='this.style.borderColor=&quot;#8899cc&quot;' onmouseout='this.style.borderColor=&quot;#eeeeff&quot;'></td>\
	<td><img title='困' style='border:1px solid #eeeeff;' src='img/kun.gif' onclick='document.getElementById(&quot;mood&quot;).src=&quot;img/kun.gif&quot;,document.getElementById(&quot;moodLib&quot;).style.display=&quot;none&quot;;' onmouseover='this.style.borderColor=&quot;#8899cc&quot;' onmouseout='this.style.borderColor=&quot;#eeeeff&quot;'></td>\
	<td><img title='再见' style='border:1px solid #eeeeff;' src='img/zaijian.gif' onclick='document.getElementById(&quot;mood&quot;).src=&quot;img/zaijian.gif&quot;,document.getElementById(&quot;moodLib&quot;).style.display=&quot;none&quot;;' onmouseover='this.style.borderColor=&quot;#8899cc&quot;' onmouseout='this.style.borderColor=&quot;#eeeeff&quot;'></td>\
	<td><img title='衰' style='border:1px solid #eeeeff;' src='img/shuai.gif' onclick='document.getElementById(&quot;mood&quot;).src=&quot;img/shuai.gif&quot;,document.getElementById(&quot;moodLib&quot;).style.display=&quot;none&quot;;' onmouseover='this.style.borderColor=&quot;#8899cc&quot;' onmouseout='this.style.borderColor=&quot;#eeeeff&quot;'></td>\
	</tr>\
	</table>\
	<div style='margin-left:18px;margin-top:5px;'>\
	<span style='font-size:12px;margin-left:5px;'>我的心情：</span><img title='点击选择心情' style='margin-left:3px;' id='mood' src='img/weixiao.gif' onclick='document.getElementById(&quot;moodLib&quot;).style.display=&quot;block&quot;;'/>\
	</div>\
	<div id='wbContentDiv' style='margin-top:5px;margin-left:18px;width:390px;height:75px;border:2px solid #bbbbbb;background-color:#fefefe;'>\
	<textarea id='weiBoContent' style='position:absolute;margin-left:5px;margin-top:4px;width:375px;height:62px;font-size:14px;color:#bbbbbb;border:none;background-color:#fefefe;z-index:0;'\
		onfocus='document.getElementById(&quot;wbContentDiv&quot;).style.borderColor=&quot;#ffffaa&quot;,this.style.color=&quot;#000000&quot;,this.value=this.value==&quot;写点什么吧...&quot;?&quot;&quot;:this.value,this.value=this.value==&quot;写点什么吧...&nbsp;&quot;?&quot;写点什么吧...&quot;:this.value;' \
		onblur='document.getElementById(&quot;wbContentDiv&quot;).style.borderColor=&quot;#bbbbbb&quot;,this.style.color=&quot;#bbbbbb&quot;,this.value=this.value==&quot;写点什么吧...&quot;?&quot;写点什么吧...&nbsp;&quot;:this.value,this.value=this.value==&quot;&quot;?&quot;写点什么吧...&quot;:this.value;'>写点什么吧...</textarea>\
	</div>\
	<div style='margin-top:5px;margin-left:18px;'>\
	<span style='font-size:12px;margin-left:5px;'>微博地址：</span>\
	<input title='点击修改' id='codeAddress' style='border:1px solid #bbffff;font-size:12px;width:195px;font-color:#888888;background-color:#bbffff;' value=''\
		onmouseover='this.style.borderColor=&quot;#ffffaa&quot;' \
		onmouseout='this.style.borderColor=document.activeElement==this?&quot;#ffffaa&quot;:&quot;#bbffff&quot;'\
		onfocus='this.style.backgroundColor=&quot;#fefefe&quot;' \
		onblur='this.style.borderColor=&quot;#bbffff&quot;,this.style.backgroundColor=&quot;#bbffff&quot;'/>\
	<input type='button' id='_broadcast' value='发表' style='font-size:12px;margin-left:10px;' onclick='"+confirm+"();'/>\
	<input type='button' id='_cancel' value='取消' style='font-size:12px;margin-left:5px;' onclick='"+cancel+"();'/>\
	</div>\
</div>\
</div>",
		align: soso.maps.ALIGN.CENTER,
		margin: new soso.maps.Size(0, -20)
	});
	return _control;
}
//***********************************************************************************************************
//点击“设置站点”时执行此函数
function setStation(){
	_setStationListener=soso.maps.Event.addListener(map,'click',function(e) {
		if(weiboLatLng==null){
			weiboLatLng = e.latLng;
		}
		if(bwcControl.getMap()==null){
			bwcControl=mBroadcastWeiboControl("stationSettingOnclick","cancelOnclick");
			//反地址解析，即根据经纬度确定地点名称
			var geocoder = new BMap.Geocoder();
			geocoder.getLocation(new BMap.Point(weiboLatLng.getLng(),weiboLatLng.getLat()), function(rs){
				if(rs){
					var addComp = rs.addressComponents;
					document.getElementById("codeAddress").value = addComp.province+addComp.city+addComp.district+addComp.street+addComp.streetNumber;
				}
				else{
					qAlert("无法确定您的点击位置，请重试~");
					bwcControl.setMap(null);
				}
			});
			bwcControl.setMap(map);
			map.setCursor("img/mc.cur");
			soso.maps.Event.removeListener(_setStationListener);
		}
		else{
			qAlert("请先退出当前正在编辑的微博！");
		}
	});
	map.setCursor("img/rsh.cur");
}
//点击“退出设置”时执行此函数
function exitRouteSetting(){
	qConfirm("您共设置了"+stationCount+"个站点，确定退出吗？",function(){
		if(bwcControl.getMap()!=null){
			qAlert("请先退出当前正在编辑的微博！");
			return;
		}
		if(_setStationListener){
			soso.maps.Event.removeListener(_setStationListener);
		}
		map.setCursor("img/mc.cur");
		bwcControl = mBroadcastWeiboControl("broadcastOnclick","cancelOnclick");
		rsControl.setMap(null);
		stationCount=0;
	},function(){});
}
//航程设置控件
function mSetRoute(){
	var _control = new soso.maps.Control({
		content: "\
<span id='setStation' type='button' style='width:60px;height:30px;font-size:12px;float:left;line-height:30px;background-color:#bbbbff;text-align:center;color:#555555;cursor:pointer;opacity:0.9;filter:alpha(opacity=90);' \
onmouseover='this.style.backgroundColor=&quot;#b6eafd&quot;' onmouseout='this.style.backgroundColor=&quot;#bbbbff&quot;' onclick='this.innerHTML=&quot;继续设置&quot;,setStation();'>设置站点</span>\
<span id='exit' type='button' style='width:60px;height:30px;font-size:12px;float:left;margin-left:5px;line-height:30px;background-color:#bbbbff;text-align:center;color:#555555;cursor:pointer;opacity:0.9;filter:alpha(opacity=90);' \
onmouseover='this.style.backgroundColor=&quot;#b6eafd&quot;' onmouseout='this.style.backgroundColor=&quot;#bbbbff&quot;' onclick='exitRouteSetting();'>退出设置</span>",
		align: soso.maps.ALIGN.TOP_LEFT,
		margin: new soso.maps.Size(10, 5)
	});
	return _control;
}
//***********************************************************************************************************
//开始演示
function startDisplay(){
	if(routeWeibos.length==0){
		routeWeibos=hGetRouteWeibo(weibos);
	}
	var rtWeibo=routeWeibos.pop();
	var rtText=hAnalyzeWeibo(rtWeibo[0].origtext);
	var lat=rtText[4]/1000000;
	var lng=rtText[5]/1000000;
	var _position=new soso.maps.LatLng(lat,lng);
	var icon=new soso.maps.MarkerImage("img/"+rtText[0] +".gif",new soso.maps.Size(24,24),new soso.maps.Point(12,24));
	if(hRouteStation(lat,lng,rtText[3])==1){
		//标记
		var shadow=new soso.maps.MarkerImage("img/markershadow.png",new soso.maps.Size(24,24),new soso.maps.Point(6,24));
		displayMarker=new soso.maps.Marker({
			icon:icon,
			shadow:shadow,
			position:_position,
			animation:soso.maps.Animation.JUMP,
			map:map
		});
	}
	else{
		//标记
		displayMarker.setIcon(icon);
		displayMarker.setPosition(_position);
	}
	//信息窗口
	var _head=(rtWeibo[0].head=="http://app.qlogo.cn"?"http://mat1.gtimg.com/www/mb/images/head_50.jpg":rtWeibo[0].head+"/50");
	displayInfo=mWeiboSummaryInfoWin(displayMarker,document.getElementById("container").name,_head,rtWeibo[1],rtText[1],rtText[2]);
	map.moveTo(_position);
	setTimeout(function(){
		displayInfo.setVisible(true);
	},1000);
	setTimeout(function(){
		displayInfo.setMap(null);//此处之前不能设置displayInfo.setVisible(false)会使得API陷入死循环
		displayInfo=null;
	},3000);
	displayTimer=setInterval(function(){
		if(routeWeibos.length==0){
			pauseDisplay();
			displayMarker.setMap(null);
			displayMarker=null;
			var rtBtn=document.getElementById("rtDisplay");
			rtBtn.title="开始演示";
			rtBtn.style.backgroundImage="url(img/play.png)";
			qAlert("演示完毕！");
			return;
		}
		rtWeibo=routeWeibos.pop();
		rtText=hAnalyzeWeibo(rtWeibo[0].origtext);
		lat=rtText[4]/1000000;
		lng=rtText[5]/1000000;
		_position=new soso.maps.LatLng(lat,lng);
		icon=new soso.maps.MarkerImage("img/"+rtText[0] +".gif",new soso.maps.Size(24,24),new soso.maps.Point(12,24));
		//信息窗口
		var _head=(rtWeibo[0].head=="http://app.qlogo.cn"?"http://mat1.gtimg.com/www/mb/images/head_50.jpg":rtWeibo[0].head+"/50");
		displayInfo=mWeiboSummaryInfoWin(displayMarker,document.getElementById("container").name,_head,rtWeibo[1],rtText[1],rtText[2]);
		//标记
		displayMarker.setIcon(icon);
		displayMarker.setPosition(_position);
		map.moveTo(_position);
		setTimeout(function(){
			displayInfo.setVisible(true);
		},1000);
		setTimeout(function(){
			displayInfo.setMap(null);
			displayInfo=null;
		},3000);
	},5000);
}
//暂停演示
function pauseDisplay(){
	if(displayTimer!=null){
		clearInterval(displayTimer);
	}
	displayTimer=null;
}
//退出演示
function exitDisplay(){
	pauseDisplay();
	rdControl.setMap(null);
	routeWeibos=new Array();
	if(displayMarker!=null){
		displayMarker.setMap(null);
	}
	displayInfo.setMap(null);
}
//自定义的航程演示控件
function mRouteDisplay(){
	var _control = new soso.maps.Control({
		content:"\
	<div id='rtDisplay' title='开始演示' style='width:30px;height:30px;background-image:url(img/play.png);cursor:pointer;opacity:0.8;filter:alpha(opacity=80);' onmouseover='this.style.opacity=0.6,this.style.filter=&quot;alpha(opacity=60)&quot;;' onmouseout='this.style.opacity=0.8,this.style.filter=&quot;alpha(opacity=80)&quot;;'\
		onclick='this.title==&quot;开始演示&quot;?(this.style.backgroundImage=&quot;url(img/pause.png)&quot;,this.title=&quot;暂停演示&quot;,startDisplay()):(this.style.backgroundImage=&quot;url(img/play.png)&quot;,this.title=&quot;开始演示&quot;,pauseDisplay());'></div>\
	<div title='退出演示' style='width:30px;height:30px;float:left;margin-left:35px;margin-top:-30px;background-image:url(img/stop.png);cursor:pointer;opacity:0.8;filter:alpha(opacity=80);' onmouseover='this.style.opacity=0.6,this.style.filter=&quot;alpha(opacity=60)&quot;;'\
		onmouseout='this.style.opacity=0.8,this.style.filter=&quot;alpha(opacity=80)&quot;;' onclick='exitDisplay()'></div>",
		align:soso.maps.ALIGN.BOTTOM,
		margin: new soso.maps.Size(0, 5)
	});
	return _control;
}
//***********************************************************************************************************
//自定义右键菜单
function mWeiboBroadcastContextMenu(){
	var _contextMenu = new soso.maps.ContextMenuControl();
	_contextMenu.setMap(map);
	_contextMenu.addItem('在这里发表微博', function(){
		//弹出微博编辑窗口
		if(bwcControl.getMap()==null){
			bwcControl.setMap(map);
		}
		else{
			qAlert("请先退出当前正在编辑的微博！");
			return;
		}
		//反地址解析，即根据经纬度确定地点名称
		var geocoder = new BMap.Geocoder();
		geocoder.getLocation(new BMap.Point(weiboLatLng.getLng(),weiboLatLng.getLat()), function(rs){
			if(rs){
				var addComp = rs.addressComponents;
				document.getElementById("codeAddress").value = addComp.province+addComp.city+addComp.district+addComp.street+addComp.streetNumber;
			}
			else{
				qAlert("无法确定您的右击位置，请重试~");
				bwcControl.setMap(null);
			}
		});
	});
	_contextMenu.addSeparator();
	_contextMenu.addItem('设置航程',function(){
		if(rsControl.getMap()==null){
			rsControl.setMap(map);
		}
	});
	_contextMenu.addSeparator();
	_contextMenu.addItem('演示航程',function(){
		if(weibos.length==0){
			qAlert("当前没有微博用户的数据!");
		}
		else if(hGetRouteWeibo(weibos).length==0){
			qAlert("当前用户没有设置航程！");
		}
		else if(rdControl.getMap()==null){
			rdControl.setMap(map);
			map.zoomTo((map.getZoomLevel()+1)%17);
			while(weiboMarkers.length!=0){
				var w=weiboMarkers.pop();
				w.setMap(null);
				w=null;
			}
			while(weiboInfos.length!=0){
				var w=weiboInfos.pop();
				w.setMap(null);
				w=null;
			}
		}
	});
	_contextMenu.addTarget(map);
}
//***********************************************************************************************************
//根据微博数组，放置微博标记
function setWeiboMarker(_flag){
	var _latLng=new Array();
	for(var i=0;i<weibos.length;i++){
		(function(n){
			var text=weibos[n].origtext;
			if(weibos[n].type==2){
				text=weibos[n].source.origtext;
			}
			var _weibo=hAnalyzeWeibo(text);
			var _position=new soso.maps.LatLng(_weibo[4]/1000000,_weibo[5]/1000000);//获取微博坐标信息
			_latLng.push(_position);
			var marker=mWeiboMarker(_weibo[0],_position);
			weiboMarkers.push(marker);
			//产生简要信息窗口
			var _head=(weibos[n].head=="http://app.qlogo.cn"?"http://mat1.gtimg.com/www/mb/images/head_50.jpg":weibos[n].head+"/50");
			var weiboInfo=mWeiboSummaryInfoWin(marker,_flag,_head,n,_weibo[1],_weibo[2]);
			weiboInfos.push(weiboInfo);
			//添加事件
			soso.maps.Event.addListener(marker, 'click', function() {
				weiboInfos[n].setVisible(true);
			});
		})(i);
	}
	var container=document.getElementById("container").style;
	var mapInfo=hGetZoomlevelCenter(container.width.replace("px",""),container.height.replace("px",""),_latLng);
	map.zoomTo(mapInfo[0]);
	map.moveTo(mapInfo[1]);
}
//自定义的微博标记
function mWeiboMarker(_mood,_position){
	var icon=new soso.maps.MarkerImage("img/"+_mood +".gif",new soso.maps.Size(24,24),new soso.maps.Point(12,24));
	var shadow=new soso.maps.MarkerImage("img/markershadow.png",new soso.maps.Size(24,24),new soso.maps.Point(6,24));
	var _weiboMarker=new soso.maps.Marker({
		icon:icon,
		shadow:shadow,
		position:_position,
		animation:soso.maps.Animation.DROP,
		map:map
	});
	return _weiboMarker;
}
//***********************************************************************************************************
//查看详情（微博简要信息窗口）
function mGotoSeeDetail(_flag,n){
	var rtBtn=document.getElementById("rtDisplay");
	if(rtBtn!=null){
		rtBtn.title="开始演示";
		rtBtn.style.backgroundImage="url(img/play.png)";
		pauseDisplay();
	}
	if(weiboInfos.length!=0){
		weiboInfos[n].setVisible(false);
	}
	wGetRelist(_flag,n);
}
//转播（微博简要信息窗口）
function mBroadcastToOthers(n){
	alloy.weibo.tweet.reAdd({content: "", reid: weibos[n].id}, function(data){
		if (data.retcode == 0) {
			qAlert("转播成功!");
			toMyHome();
		}
		else{
			qAlert(qErrorInfo(data.retcode));
		}
	});
}
//修改
function mModifyInSummary(n){
	if(weibos[n].type==2){
		qAlert("转播的微博就不要改变位置了吧~");
		return;
	}
	qAlert("现在拖动标记对位置进行修改！");
	weiboInfos[n].setVisible(false);
	var marker=weiboMarkers[n];
	marker.setDraggable(true);
	//当标记拖拽结束时
	_modifyWeiboListener=soso.maps.Event.addListener(marker, 'dragend', function(){
		var pos=marker.getPosition();
		wModifyWeiboAddress(weibos[n].id,pos.getLat().toFixed(6),pos.getLng().toFixed(6));
		soso.maps.Event.removeListener(_modifyWeiboListener);
		weiboMarkers[n].setDraggable(false);
	});
}
//删除（微博简要信息窗口）
function mDeleteWeibo(n){
	qConfirm("确定要删除吗？",function(){
		alloy.weibo.tweet.del({id: weibos[n].id}, function(data){
			if (data.retcode == 0) {
				qAlert("删除成功!");
				toMyHome();
			}
			else{
				qAlert(qErrorInfo(data.retcode));
			}
		});
	},function(){})
}
//添加自定义的微博简要信息窗口:窗口位置，是否为自己的微博，头像，在数组中的位置，微博内容，微博地址
function mWeiboSummaryInfoWin(_position,_flag,_headImg,n,_weibo,_location){
	var style = {
		url: "img/infowin.png",
		top_left: [0, 0, 15, 15],//左上角区域
		bottom_right:[260, 100, 20, 20],//右下角区域
		margin: [10, 10],//内容与图片的空白区域
		width_range: [280, 280],//控件的宽度范围
		height_range: [120, 120],//控件的高度范围
		offset: [-2, 5],//还没有搞清楚是什么，可能是窗口与标准位置的偏移量吧
		stem: {//脚
			x: [50, 104, 42],//三角形的三个点的横坐标
			y: 145,//三角形下边点的纵坐标
			align: soso.maps.ALIGN.LEFT, //三角形的对齐方式 'left', 'center', 'right'
			offset: 42//三角形相对于对齐方式的偏移
		},
		close: {
			url: "img/infowinclose.png",
			coordinate: [0, 0, 30, 30],//图片区域
			align: soso.maps.ALIGN.TOP_RIGHT,
			margin: [-12, -12]//目的是让这个按钮嵌入到窗口中
		},
		shadow: {
			url: "img/infowinshadow.png",
			top_left: [354, 156],
			bottom_right: [657, 472],
			stem: {
				x: [60, 90, 16],
				y: 503,
				offset: [-25, -10],
				blur: 5
			}
		}
	};
	var infoWin = new soso.maps.InfoWindow({
		style: style,
		map:map,
		content:"\
<div style='width:260px;height:100px;background-color:#b6eafd;'>\
<div style='margin-top:2px;'>\
	<div style='position:relative;float:left;width:50px;height:50px;'><img title='"+weibos[n].nick+"' id='sHeadImg' style='width:50px;height:50px;' src='"+_headImg+"'/></div>\
	<div style='position:relative;float:right;width:200px;height:50px;background-color:#c7fbff;'>\
	<span id='sUserName' style='font-size:15px;color:#ff67ff;'>"+weibos[n].nick+"：</span>\
	<span id='sWeiboSummary' style='font-size:15px;color:#555555;'>"+(weibos[n].type==2?"【转播】":"")+_weibo.substring(0,18)+"...</span>\
	<span id='sGotoWeiboDetail' style='cursor:pointer;font-size:12px;color:#0000ff;text-decoration:underline;float:right;' onclick='mGotoSeeDetail("+_flag+","+n+");'>查看详情</span>\
	</div>\
</div>\
<div style='position:relative;float:left;width:249px;height:25px;margin-top:4px;margin-left:5px;border-top:1px solid #86bacd;'>\
	<div style='margin-top:4px;'>\
	<span style='font-size:12px;color:#555555;margin-top:4px;'>微博位置：<span>\
	<span id='sWeiboLocation' style='font-size:12px;color:#555555;'>"+_location+"</span>\
	</div>\
</div>\
<div style='position:absolute;margin-top:80px;margin-left:180px;font-size:12px;'>\
	<span style='cursor:pointer;color:#aaaaaa;' onmouseover='this.style.color=&quot;#0000ff&quot;,this.style.textDecoration=&quot;underline&quot;;' onmouseout='this.style.color=&quot;#aaaaaa&quot;,this.style.textDecoration=&quot;none&quot;;' "
		+(_flag?"onclick='mModifyInSummary("+n+");'>修改":"onclick='mBroadcastToOthers("+n+");'>转播")+"</span>\
	<span>&nbsp;|&nbsp;</span>\
	<span style='cursor:pointer;color:#aaaaaa;' onmouseover='this.style.color=&quot;#0000ff&quot;,this.style.textDecoration=&quot;underline&quot;;' onmouseout='this.style.color=&quot;#aaaaaa&quot;,this.style.textDecoration=&quot;none&quot;;' "
		+(_flag?"onclick='mDeleteWeibo("+n+");'>删除":"onclick='mGotoSeeDetail("+_flag+","+n+");'>评论")+"</span>\
</div>\
</div>",
	position:_position,
	animation:soso.maps.Animation.POP,
	visible:false
	});
	return infoWin;
}
//***********************************************************************************************************
//关闭（微博详情窗口）
function wdcClose(){
	wdControl.setMap(null);
	wdControl=null;
}
//去TA主页（微博详情窗口）
function wdcGotoSee(name){
	alloy.system.openURL({
		url: "http://t.qq.com/"+name
	});
}
//转播（微博详情窗口）
function wdcBroadToOthers(n){
	alloy.weibo.tweet.reAdd({content: "", reid: weibos[n].id}, function(data){
		if (data.retcode == 0) {
			qAlert("转播成功!");
			wdControl.setMap(null);
			wdControl=null;
			toMyHome();
		}
		else{
			qAlert(qErrorInfo(data.retcode));
		}
	});
}
//删除（微博详情窗口）
function wdcDeleteWeibo(n){
	qConfirm("确定要删除吗？",function(){
		alloy.weibo.tweet.del({id: weibos[n].id}, function(data){
			if (data.retcode == 0) {
				qAlert("删除成功!");
				wdControl.setMap(null);
				wdControl=null;
				toMyHome();
			}
			else{
				qAlert(qErrorInfo(data.retcode));
			}
		});
	},function(){})
}
//评论（微博详情窗口）
function wdcAddComment(n){
	if(document.getElementById("sComment").value=="给点评论吧..."){
		qAlert("没有填写任何内容！");
	}
	else{
		var id=weibos[n].id;
		var text=hWeiboContentFilter(document.getElementById("sComment").value);
		if(text == "给点评论吧... "){
			text = "给点评论吧...";
		}
		wReply(id,text);
	}
}
//自定义微博详情窗口控件：是否为自己的微博，头像，名字，内容，时间，地点，评论数组，微博索引
function mWeiboDetailControl(_flag,_useHeadImg,_nick,_name,_weiboContent,_weiboTime,_weiboLocation,_comments,n){
	var _commentStr = "";
	for(var i in _comments){
		//评论时间
		var _timeStr=hParseTime(_comments[i].timestamp);
		_commentStr+="\
			<div style='float:left;width:430px;margin-top:10px;background-color:#b6eafd;'>\
				<div style='margin-left:10px;margin-top:5px;width:400px;'>\
				<div style='float:left;'><img title='"+_comments[i].nick+"' id='dCommenterHeadImg' style='width:50px;height:50px' src='"+(_comments[i].head=="http://app.qlogo.cn"?"http://mat1.gtimg.com/www/mb/images/head_50.jpg":_comments[i].head+"/50")+"'/></div>\
				<div style='float:right;width:340px;margin-top:3px;'>\
				<span id='dCommenterUserName' style='color:#ff67ff;'>"+_comments[i].nick+"(@"+_comments[i].name+")</span>\
				<span id='dCommentTime' style='color:#888888;'>&nbsp;于&nbsp;"+_timeStr+"</span>\
				<div style='margin-top:5px;'><span id='dCommentContent' style='color:#222222;'>"+(_comments[i].type==2?("【转播了这条微博】"+_comments[i].text):_comments[i].text)+"</span></div>\
				</div>\
				</div>\
			</div>";
	}
	var _userName=(_nick==null?"":_nick)+"(@"+(_name==null?"":_name)+")";
	var _control = new soso.maps.Control({
		content: "\
<div style='width:600px;height:300px;border:1px solid #999999;background-color:#b6eafd;opacity:0.9;filter:alpha(opacity=90);' onmouseover='map.setScrollWheel(false);' onmouseout='map.setScrollWheel(true);'>\
<div style='cursor:pointer;float:right;margin-top:3px;margin-right:8px;'><span style='color:#aaaaaa;font-size:12px' onmouseover='this.style.color=&quot;#ff0000&quot;,this.style.textDecoration=&quot;underline&quot;;' \
	onmouseout='this.style.color=&quot;#aaaaaa&quot;,this.style.textDecoration=&quot;none&quot;;' onclick='wdcClose();'>关闭</span></div>\
<div style='width:530px;height:260px;margin-left:35px;margin-top:20px;border:1px solid #999999;background-color:#bbffff;'>\
	<div style='width:50px;height:240px;float:left;margin-left:10px;margin-top:10px;'>\
	<img  title='"+_nick+"' style='width:50px;height:50px;' src='"+(_useHeadImg==null?"":_useHeadImg)+"'/>"+(_flag?"":"\
	<span style='cursor:pointer;font-size:12px;color:#0000ff;' onmouseover='this.style.textDecoration=&quot;underline&quot;' onmouseout='this.style.textDecoration=&quot;none&quot;' onclick='wAddSpecail(&quot;"+_name+"&quot;);'>特别收听</span>\
	<span style='cursor:pointer;font-size:12px;color:#0000ff;' onmouseover='this.style.textDecoration=&quot;underline&quot;' onmouseout='this.style.textDecoration=&quot;none&quot;' onclick='wDelSpecail(&quot;"+_name+"&quot;);'>普通收听</span>\
	<span style='cursor:pointer;font-size:12px;color:#0000ff;' onmouseover='this.style.textDecoration=&quot;underline&quot;' onmouseout='this.style.textDecoration=&quot;none&quot;' onclick='wDelFriend(&quot;"+_name+"&quot;),wdControl.setMap(null),wdControl=null,toMyHome();'>取消收听</span>")+
	"</div>\
	<div style='width:450px;height:240px;float:right;margin-right:10px;margin-top:10px;overflow-x:hidden;overflow-y:auto;'>\
		<div style='margin-top:5px;width:430px;'>\
		<span style='font-size:15px;color:#ff67ff;'>"+(_userName==null?"":_userName)+"：</span>\
		<span style='font-size:15px;color:#222222;'>"+(_weiboContent==null?"":_weiboContent)+"</span>\
		</div>\
		<div style='width:430px;'>\
		<span style='font-size:12px;color:#888888;margin-left:5px;'>"+(_weiboTime==null?"":_weiboTime)+"&nbsp;在&nbsp;</span>\
		<span style='font-size:12px;color:#888888;'>"+(_weiboLocation==null?"":_weiboLocation)+"</span>\
		</div>\
		<div style='width:430px;font-size:12px;color:#aaaaaa;margin-top:5px;border-top:1px solid #86bacd;'>\
			<div style='margin-top:5px;float:right;margin-right:10px;'>\
			<span style='cursor:pointer;' onmouseover='this.style.color=&quot;#0000ff&quot;,this.style.textDecoration=&quot;underline&quot;;' onmouseout='this.style.color=&quot;#aaaaaa&quot;,this.style.textDecoration=&quot;none&quot;;' onclick='wdcGotoSee(&quot;"+_name+"&quot;);'>去TA主页</span>\
			<span>&nbsp;|&nbsp;</span>\
			<span style='cursor:pointer;' onmouseover='this.style.color=&quot;#0000ff&quot;,this.style.textDecoration=&quot;underline&quot;;' onmouseout='this.style.color=&quot;#aaaaaa&quot;,this.style.textDecoration=&quot;none&quot;;' "+(_flag?"onclick='wdcDeleteWeibo("+n+");'>删除" : "onclick='wdcBroadToOthers("+n+");'>转播")+"</span>\
			</div>\
		</div>\
		<div style='width:430px;'>\
			<div id='sCommentDiv' style='float:left;margin-top:5px;margin-left:10px;width:405px;height:75px;border:2px solid #bbbbbb;background-color:#fefefe;'>\
			<textarea id='sComment' style='margin-left:5px;*margin-left:-5px;margin-top:4px;width:395px;height:62px;font-size:14px;color:#bbbbbb;border:none;background-color:#fefefe;overflow:auto;'\
				onfocus='document.getElementById(&quot;sCommentDiv&quot;).style.borderColor=&quot;#ffffaa&quot;,this.style.color=&quot;#000000&quot;,this.value=this.value==&quot;给点评论吧...&quot;?&quot;&quot;:this.value,this.value=this.value==&quot;给点评论吧...&nbsp;&quot;?&quot;给点评论吧...&quot;:this.value;' \
				onblur='document.getElementById(&quot;sCommentDiv&quot;).style.borderColor=&quot;#bbbbbb&quot;,this.style.color=&quot;#bbbbbb&quot;,this.value=this.value==&quot;给点评论吧...&quot;?&quot;给点评论吧...&nbsp;&quot;:this.value,this.value=this.value==&quot;&quot;?&quot;给点评论吧...&quot;:this.value;'>给点评论吧...</textarea>\
			</div>\
			<div style='width:450px;float:right;'>\
			<input type='button' id='dSubmitComment' value='评论' style='font-size:12px;float:right;margin-top:3px;margin-right:40px;' onclick='wdcAddComment("+n+");'/>\
			</div>\
		</div>\
		<div id='sCommentList' style='float:left;margin-top:5px;border-top:1px solid #86bacd;font-size:12px;width:430px;'>"
			+(_commentStr==null?"":_commentStr)+
		"</div>\
	</div>\
</div>\
</div>",
		align: soso.maps.ALIGN.CENTER,
		margin: new soso.maps.Size(0, -10)
	});
	return _control;
}
//***********************************************************************************************************
//点击人物列表中的某一项时响应此函数
function toOnesWeibo(name){
	if(rdControl.getMap()!=null){
		qAlert("请先退出航程演示！");
		return;
	}
	while(weiboMarkers.length!=0){
		var w=weiboMarkers.pop();
		w.setMap(null);
		w=null;
	}
	while(weiboInfos.length!=0){
		var w=weiboInfos.pop();
		w.setMap(null);
		w=null;
	}
	wGetWeibos(false,name);//微博标记将会在这个函数的回调函数里边创建
	document.getElementById("container").name="false";
}
//自定义人物列表控件
function mPeopleControl(){
	var _control = new soso.maps.Control({
		content: "\
<div style='position:absolute;width:240px;height:30px;margin-left:10px;z-index:1;font-size:12px;text-align:center;line-height:30px;color:#555555;opacity:0.9;filter:alpha(opacity=90);'>\
	<span title='我收听的人' class='cur' style='cursor:pointer;width:59px;height:30px;background-color:#bbbbff;border-right:1px solid #b6eafd;float:left;' onclick='$(&quot;span.cur&quot;).css(&quot;backgroundColor&quot;,&quot;#bbbbff&quot;),this.style.backgroundColor=&quot;#ffccff&quot;,$(&quot;#pSFriContainer,#pFanContainer,#pBlaContainer&quot;).fadeOut(200,function(){$(&quot;#pContainer&quot;).slideDown(500,function(){$(&quot;#pFriContainer&quot;).fadeIn(500)})}),wGetIdolList();'>收听</span>\
	<span title='我特别收听的人' class='cur' style='cursor:pointer;width:59px;height:30px;background-color:#bbbbff;border-right:1px solid #b6eafd;float:left;' onclick='$(&quot;span.cur&quot;).css(&quot;backgroundColor&quot;,&quot;#bbbbff&quot;),this.style.backgroundColor=&quot;#ff8888&quot;,$(&quot;#pFriContainer,#pFanContainer,#pBlaContainer&quot;).fadeOut(200,function(){$(&quot;#pContainer&quot;).slideDown(500,function(){$(&quot;#pSFriContainer&quot;).fadeIn(500)})}),wGetSpecialList();'>特别收听</span>\
	<span title='我的听众' class='cur' style='cursor:pointer;width:59px;height:30px;background-color:#bbbbff;border-right:1px solid #b6eafd;float:left;' onclick='$(&quot;span.cur&quot;).css(&quot;backgroundColor&quot;,&quot;#bbbbff&quot;),this.style.backgroundColor=&quot;#aaffaa&quot;,$(&quot;#pFriContainer,#pSFriContainer,#pBlaContainer&quot;).fadeOut(200,function(){$(&quot;#pContainer&quot;).slideDown(500,function(){$(&quot;#pFanContainer&quot;).fadeIn(500)})}),wGetFansList();'>听众</span>\
	<span title='黑名单' class='cur' style='cursor:pointer;width:60px;height:30px;background-color:#bbbbff;float:left;' onclick='$(&quot;span.cur&quot;).css(&quot;backgroundColor&quot;,&quot;#bbbbff&quot;),this.style.backgroundColor=&quot;#aaaaaa&quot;,$(&quot;#pFriContainer,#pSFriContainer,#pFanContainer&quot;).fadeOut(200,function(){$(&quot;#pContainer&quot;).slideDown(500,function(){$(&quot;#pBlaContainer&quot;).fadeIn(500)})}),wGetBlackList();'>黑名单</span>\
</div>\
<div id='pContainer' style='position:absolute;margin-top:0px;width:260px;height:400px;background-color:#b6eafd;z-index:0;opacity:0.9;filter:alpha(opacity=90);display:none;' onmouseover='map.setScrollWheel(false);' onmouseout='map.setScrollWheel(true);'>\
<div style='width:240px;margin-left:10px;height:30px;background-color:#bbffff;'></div>\
<div style='height:335px;overflow:hidden;'>\
<div class='cur' id='pFriContainer' style='width:240px;height:335px;margin-left:10px;background-color:#bbffff;display:none;overflow-x:hidden;overflow-y:auto;'>\
</div>\
<div class='cur' id='pSFriContainer' style='width:240px;height:335px;margin-left:10px;background-color:#bbffff;display:none;overflow-x:hidden;overflow-y:auto;'>\
</div>\
<div class='cur' id='pFanContainer' style='width:240px;height:335px;margin-left:10px;background-color:#bbffff;display:none;overflow-x:hidden;overflow-y:auto;'>\
</div>\
<div class='cur' id='pBlaContainer' style='width:240px;height:335px;margin-left:10px;background-color:#bbffff;display:none;overflow-x:hidden;overflow-y:auto;'>\
</div>\
</div>\
<div title='收起列表' style='cursor:pointer;width:260px;height:30px;text-align:center;line-height:30px;font-size:12px;color:#555555;' onclick='$(&quot;div.cur&quot;).hide(),$(&quot;#pContainer&quot;).slideUp(500),$(&quot;span.cur&quot;).css(&quot;backgroundColor&quot;,&quot;#bbbbff&quot;)'>收起</div>\
</div>",
		align: soso.maps.ALIGN.TOP_RIGHT,
		margin: new soso.maps.Size(300, 5),
		map:map
	});
	return _control;
}
//***********************************************************************************************************
//点击“我发表”的响应
function toMyHome(){
	if(rdControl.getMap()!=null){
		qAlert("请先退出航程演示！");
		return;
	}
	while(weiboMarkers.length!=0){
		var w=weiboMarkers.pop();
		w.setMap(null);
		w=null;
	}
	while(weiboInfos.length!=0){
		var w=weiboInfos.pop();
		w.setMap(null);
		w=null;
	}
	wGetWeibos(true);//微博标记将会在这个函数的回调函数里边创建
	document.getElementById("container").name="true";
}
//自定义控件“我发表”
function mWeiboHome(){
	var _control = new soso.maps.Control({
		content:"<div title='我的微博' style='width:30px;height:30px;background-image:url(img/home.png);cursor:pointer;opacity:0.8;filter:alpha(opacity=80);' \
		onmouseover='this.style.opacity=0.6,this.style.filter=&quot;alpha(opacity=60)&quot;;' onmouseout='this.style.opacity=0.8,this.style.filter=&quot;alpha(opacity=80)&quot;;'\
		onclick='toMyHome();'></div>",
		align: soso.maps.ALIGN.TOP_RIGHT,
		margin: new soso.maps.Size(10, 5),
		map:map
	});
	return _control;
}

